body {
  margin: 0;
  padding: 0;
  background: #262626;
}

.rating {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotateY(180deg);
  display: flex;
}

.rating input {
  display: none;
}

.rating label {
  display: block;
  cursor: pointer;
  width: 50px;
}

.rating label:before {
  content: '\f005';
  font-family: fontAwesome;
  position: relative;
  display: block;
  font-size: 50px;
  color: #101010;
}

.rating label:after {
  content: '\f005';
  font-family: fontAwesome;
  position: absolute;
  display: block;
  font-size: 50px;
  color: #1f9cff;
  top: 0;
  opacity: 0;
  transition: .5s;
  text-shadow: 0 2px 5px rgba(0, 0, 0, .5);
}

.rating label:hover:after,
.rating label:hover~label:after,
.rating label:checked~label:after {
  opacity: 1;
}